//package com.atung.parking;
//
//import java.util.concurrent.*;
//
//public class DeviceDataCache {
//    // 阻塞队列，用于存储设备消息
//    private final BlockingQueue<String> queue = new LinkedBlockingQueue<>();
//
//    // 定时任务调度器
//    private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
//
//    // 模拟设备消息的生产者线程
//    private final Thread producerThread = new Thread(() -> {
//        long startTime = System.currentTimeMillis(); // 记录开始时间
//        System.out.println("记录时间");
//        while (true) {
//            try {
//                // 模拟设备上报消息
//                String message = "DeviceMessage_" + System.currentTimeMillis();
//                queue.put(message); // 将消息放入队列
//                System.out.println("Produced: " + message);
//
//                // 模拟每秒产生100个消息
//                Thread.sleep(10); // 每10ms产生一个消息
//
//                // 检查是否运行了10秒
//                if (System.currentTimeMillis() - startTime >= 50000) {
//                    break; // 如果运行时间超过10秒，退出循环
//                }
//            } catch (InterruptedException e) {
//                Thread.currentThread().interrupt();
//                break;
//            }
//        }
//        System.out.println("Producer thread stopped after 10 seconds.");
//    });
//
//    // 消费者线程，每秒从队列中读取数据
//    private final Runnable consumerTask = () -> {
//        System.out.println("开始执行");
//
//        try {
//            // 从队列中批量读取消息
//            int batchSize = queue.size(); // 每次处理的消息数量
////            StringBuilder batchMessages = new StringBuilder();
//            for (int i = 0; i < batchSize; i++) {
//                String message = queue.poll(); // 非阻塞方式获取消息
//                if (message == null) {
//                    break; // 如果队列为空，结束本次处理
//                }
////                batchMessages.append(message).append("\n");
//                System.out.println("队列大小:"+queue.size()+"获取值："+message);
//            }
//
////            if (batchMessages.length() > 0) {
////                // 处理消息（例如写入数据库）
////                System.out.println("Consumed batch:\n" + batchMessages.toString());
////            }
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    };
//
//    public DeviceDataCache() {
//        // 启动生产者线程
//        producerThread.start();
//
//        // 定时任务，每秒执行一次消费者任务
//        scheduler.scheduleAtFixedRate(consumerTask, 0, 1, TimeUnit.SECONDS);
//    }
//
//    public static void main(String[] args) {
//        new DeviceDataCache(); // 启动程序
//    }
//}